Personal computers and micro-computers are presently being manufactured with large amounts of random-access memory. When the user starts up one of these computers, the computer automatically tests its memory for operability. The testing is performed by the processor (or a designated processor in a multi-processor machine), which runs a testing program. The testing program does the following: (1) it writes data to each memory location, (2) it reads the data, and (3) checks the data read for errors.
With ever-increasing amounts of memory, the time required to perform this testing becomes inconvenient: the testing delays the availability of the memory for other uses. That is, during the test, the memory cannot be used to store data or programs, because the testing itself would wipe out the stored data.